import { login } from '@/apis/user';
import {
	getToken,
	setToken,
	removeToken,
	getUserInfo,
	setUserInfo,
	getStoreId,
	setStoreId
} from '@/utils/auth';
import { rsaEncrypt, rsaDecrypt } from '@/utils/rsa';
const state = {
	token: getToken(),
	name: '',
	avatar: '',
	userInfo: getUserInfo()
	// storeId:getStoreId()
};
const mutations = {
	setToken(state, token) {
		state.token = token;
		// 同步到缓存
		setToken(token);
	},
	removeToken(state) {
		// 删除Vuex的token
		state.token = null;
		removeToken();
	},
	setUserInfo(state, userInfo) {
		state.userInfo = userInfo;
		setUserInfo(JSON.stringify(userInfo));
	}
	// setStoreId(state, storeId) {
	//   state.storeId = storeId
	//   setStoreId(storeId)
	// }
};
const actions = {
	// context上下文，传入参数
	async login(context, data) {
		// console.log(data)
		// todo: 调用登录接口
		const res = await login({ ...data, name: '', headImg: '', openid: '' });
		if (res.code === 200) {
			console.log('登录成功');
			const data = rsaDecrypt(res.data.data);
			console.log('data', data);
			context.commit('setToken', data.token);
			console.log('context.state.token', data.token);
			context.commit('setUserInfo', data);
			uni.switchTab({
				url: '/pages/index/index'
			});
		} else {
			console.log('登录失败');
			uni.utils.toast(res.message);
			// const timer = setTimeout(() => {
			// 	uni.redirectTo({
			// 		url: '/pages/login/index'
			// 	});
			// 	clearTimeout(timer);
			// }, 1500);
		}
		console.log(res);
		// 返回一个token 123456
	},
	// 退出登录
	logOut(context) {
		// 删除token
		context.commit('removeToken');
		// 删除用户信息
		// context.commit('setUserInfo', {})
	},
	async getInfo(context) {
		// const res = await getInfo(context.state.token)
		// console.log(res)
		// context.commit('setName', res.data.name)
		// context.commit('setAvatar', res.data.avatar)
	}
	// setStoreId(context,storeId){
	//   context.commit('setStoreId',storeId)
	// }
};
export default {
	namespaced: true,
	state,
	mutations,
	actions
};
